草庐IT

c++ - C++中static的含义

全部标签

c++ - 在 C++11 中更改了默认初始化的含义?

C++20038.5/5说:Todefault-initializeanobjectoftypeTmeans:—ifTisanon-PODclasstype(clause9),thedefaultconstructorforTiscalled(andtheinitializationisill-formedifThasnoaccessibledefaultconstructor);—ifTisanarraytype,eachelementisdefault-initialized;—otherwise,theobjectiszero-initialized.[强调添加。]C++2011

c++ - U后缀的含义

后缀(或后缀)U对以下值意味着什么?0U100U 最佳答案 它代表无符号。当你声明一个常量时,你也可以指定它的类型。另一个常见的例子是L,它代表long。(而且你必须把它放两次才能指定一个64位常量)。示例:1ULL.它有助于避免显式转换。 关于c++-U后缀的含义,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4380691/

c++ - assert 和 static_assert 有什么区别?

我知道static_assert在编译时进行断言,而assert在运行时进行断言,但实际上有什么区别?据我了解,在内心深处它们是代码片段,例如if(condition==false)exit();谁能给我一个例子,说明onlystatic_assert或onlyassert会在哪里工作?他们能做一些简单的if语句做不到的事情吗?使用它们是不好的做法吗? 最佳答案 你问了三个问题,所以我会试着回答每个问题。谁能给我一个例子,说明onlystatic_assert或onlyassert可以在哪里工作?static_assert非常适合在

c++ - static const 与 const static

我不明白我的C++类中这两个语句之间的区别:classMyClass{public:private:staticconstintvar=0;//Option1conststaticintvar=0;//Option2};b/w选项1和选项2有什么区别??他们都编译。 最佳答案 它们的意思完全一样。您可以自由选择您认为更容易阅读的内容。在C中,您应该将static放在开头,但这还不是必需的。我不确定C++在这方面是否遵循C。6.11.5Storage-classspecifiers1Theplacementofastorage-cla

c++ - C++ 中 *& 和 **& 的含义

我在函数声明中多次找到这些符号,但我不知道它们的含义。示例:voidraccogli_dati(double**&V,double**p,intN){intultimo=3;V=newdouble*[N/2];for(inti=0;i>V[i][j],p[ultimo++][0]=(V[i][j]/=sqrt(p[i][0]*p[j][0]));}for(inti=1;i 最佳答案 这是通过引用获取参数。因此,在第一种情况下,您通过引用获取指针参数,因此您对指针值所做的任何修改都会反射(reflect)在函数之外。第二个与第一个相似

c++ - 在 static_assert 输出中集成类型名称?

我喜欢提供有用的错误/消息,我也想为我的static_assert这样做s。问题是,它们依赖于模板参数。通常,由于引发的错误,这些参数将在途中或其他地方显示,但它们要么是模糊的,要么没有分组,因此它们是有意义的。示例:templatestructfake_dependency{staticboolconstvalue=false;};templatestructFoo{Foo(){}templateFoo(Fooconst&){static_assert(fake_dependency::value,"CannotcreateFoofromFoo.");}};intmain(){Foo

c++ - 模板元编程 - 使用 Enum Hack 和 Static Const 的区别

我想知道在使用模板元编程技术时使用静态const和enumhack有什么区别。EX:(通过TMP斐波那契)templatestructTMPFib{staticconstintval=TMPFib::val+TMPFib::val;};templatestructTMPFib{staticconstintval=1;};templatestructTMPFib{staticconstintval=0;};对比templatestructTMPFib{enum{val=TMPFib::val+TMPFib::val};};templatestructTMPFib{enum{val=1};

c++ - `struct X typedef` 与 `typedef struct X` 的含义是什么?

我在现有代码库中有以下(工作)代码,用于在C和C++之间共享的包含文件,在MSVC(2010)和WindowsDDK上编译:structX{USHORTx;}typedefX,*PX;还有:enumMY_ENUM{enum_item_1,enum_item_2}typedefMY_ENUM;据我所知,正确的定义应该是这样的:typedefstruct{USHORTx;}X,*PX;下面的表格有什么目的吗?我错过了什么吗? 最佳答案 事实上,typedef和typedef是否有效只是来自语言语法定义。typedef被归类为存储类说明符

c++ - g++ 链接器 : force static linking if static library exists?

我有一个链接到许多库的程序。g++,默认情况下,更喜欢链接到共享库,即使相应的存档存在。如果存在静态存档,我如何更改此首选项以首选静态存档而不是动态库?​​注意,我使用了-static选项,但它会尝试为所有库查找静态存档,这不是我想要的。 最佳答案 g++-Wl,-Bstatic-lz-lfoo-Wl,-Bdynamic-lbar-Wl,--as-needed将zlib和libfoo链接为static,并将libbar链接为dynamic。--as-needed将丢弃任何未使用的动态库。

go - Go 函数参数中下划线的含义

遇到下面的函数here.我注意到最后一个参数用_标识。这种模式的意图是什么?funcIndex(whttp.ResponseWriter,r*http.Request,_httprouter.Params){fmt.Fprint(w,"Welcome!\n")} 最佳答案 意思是“忽略那个参数”,这里还需要最后一个参数是因为他们想把它作为typeHandle传递给函数GET,其中有签名:typeHandlefunc(http.ResponseWriter,*http.Request,Params)如果你只是传递类似funcIndex